1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and an apparatus for processing self-describing objects. Still more particularly, the present invention provides a method to decompose, display, and modify self-describing objects and to create new self-describing objects through cut and paste operations.
2. Description of the Related Art
Two recent trends in computing have been the development of distributed computing systems and the implementation of software using an object-oriented paradigm. Distributed computing systems are based on a client-server model. For any particular transaction, the client requests that a server perform a particular service, such as looking up or modifying a data value. In a distributed environment, the same machine may be a client for some requests and a server responding to other requests. The implementation of the client-server model is most easily accomplished using an object-oriented approach. CORBA (Common Object Request Broker Architecture) was developed by the Object Management Group (OMG). This nonprofit consortium was formed in 1989 and has membership of over 500 software vendors, developers, and users. A major goal of OMC is to create standards that allow interoperability and portability of distributed object-oriented applications.
Some of the services provided by CORBA are directory and naming services to locate remote objects, persistent object services, and transaction services. A transaction is an operation or set of operations that must be performed atomically. There are two outcomes for a transaction: it is committed resulting in data values being changed if appropriate or it is aborted, which means data values must be restored to their pre-transaction values. CORBA provides these services in a language independent and platform independent manner.
There are alternatives to CORBA, but these approaches have limitations. Socket programming is efficient in a homogeneous programming environment but it is low level, it cannot handle complex types well, and it does not work well in a heterogeneous environment. Remote Procedure Calls (RPC) provide a function-oriented interface to socket level communications but do not overcome the limitations already cited. The Distributed Computing Environment (DCE) by Open Software Foundation (OSF) is an interesting approach but not widely accepted. The Distributed Component Object Model (DCOM) from Microsoft only targets Microsoft Windows environments. The Remote Method Invocation (RMI) of Java is very similar to CORBA in design but is Java dependent. Consequently, CORBA provides the services necessary for distributing computing in the most language independent and machine independent manner.
CORBA is an object-oriented system so it interfaces easily with object-oriented languages such as C++ or Java. But non-object-oriented languages such as C or COBOL may also use CORBA. There are several components to the CORBA environment. The Object Request Broker (ORB) facilitates communications by finding remote objects and handling parameter values and return values for method invocation. The Interface Definition Language (IDL) specifies interfaces in a language independent fashion. The CORBA system maps these interfaces to the appropriate target programming languages. CORBA implements interface inheritance.
IDL supports many primitive data types, such as void, boolean, char, float, double, short, long, unsigned, and string. CORBA also supports a variety of constructed types such as enumerated, structure, union, interface, sequence, array, and exception. There is also an xe2x80x9cANYxe2x80x9d type that can be used for parameters or return values. This will contain any combination of built-in types for IDL. ANY types carry along additional methods that help process the object. It would be advantageous to have a software package that allows a programmer to decompose, display, modify or substitute objects of type ANY, in the case of the CORBA environment, or, in general, for environments that contain self-describing types.
The present invention discloses a method and system to decompose, display, modify and substitute the contents of self-describing objects. A user-friendly graphical user interface is designed to facilitate the processing of these objects. Since objects can be arbitrarily complex, the presentation of information in a clear and concise manner is critically important. The user can modify the values for existing objects, and by using the copy and paste operations, the user can construct new objects. These changes are made through the graphical user interface where the contents of the object is displayed and controls are provided to modify existing objects or to create new objects.
The particular embodiment of this invention deals with CORBA objects of type ANY. Objects of ANY type include a Helper class to support the insertion and extraction of information. This class is dynamically created and invoked to assist in obtaining the contents from the ANY type. There are also methods to help narrow the type of objects. By utilizing these self-describing features, the present embodiment of this invention allows a user to decompose, display, and modify CORBA objects of type ANY, and to construct new objects of CORBA type ANY.